草庐IT

javascript - 记录 javascript 方法的副作用

全部标签

ruby - 如何使用 Ruby MiniTest stub 引发错误的方法?

我正在尝试测试模型方法引发错误时触发的RailsController分支。defmy_controller_method@my_object=MyObject.find(params[:id])beginresult=@my_object.my_model_method(params)rescueExceptions::CustomError=>eflash.now[:error]=e.messageredirect_tomy_object_path(@my_object)andreturnend#...restirrelevantend如何获得Miniteststub以引发此错误?i

ruby-on-rails - 如何在 ruby​​ ActiveRecord 中销毁没有 ID 列的记录?

我有一个没有ID列的表。当我尝试使用ActiveRecord从中删除时,生成的SQL是DELETEFROMtable_nameWHEREID=NULL,这显然不起作用。有什么方法可以使用ActiveRecord从表中删除,或者至少运行带有占位符的原始SQL删除查询(因此它不易受到SQL注入(inject)的攻击)? 最佳答案 您是否尝试过使用ActiveRecord的delete_all方法?这是我的沙箱中的摘录:>>customer=Customer.new(:login=>'foo')=>#,discount:0,last_fo

jquery - 如何在 jQuery 中调用 Rails 方法

我有这个JQuery代码:$("p.exclamation,div#notification_box").live("mouseover",function(){});我想从jQuery代码内部调用这个rails方法作为回调:defrender_readself.user_notifications.where(:read=>false).eachdo|n|n.read=truen.saveendend这个方法在我的用户模型中。有什么办法吗? 最佳答案 进行AJAX调用、设置路由、响应Controller操作并调用您的方法。#wha

ruby-on-rails - 为什么 RSpec 的方法 "get"、 "post"、 "put"、 "delete"在 gem(或 Rails 外部)的 Controller 规范中不起作用?

我不是Rails或Rspec的新手,但我是制作gems的新手。当我测试我的Controller时,REST方法“get”、“post”、“put”、“delete”给我一个未定义的方法错误。您将在下面找到代码,但如果您更喜欢在馅饼中查看它,clickhere.谢谢!这是我的spec_helper:$LOAD_PATH.unshift(File.dirname(__FILE__))$LOAD_PATH.unshift(File.join(File.dirname(__FILE__),'..','lib'))require'rubygems'require'active_support'u

javascript - Rails 递归地包含 javascripts Assets 文件夹

我了解如何将一个javascript文件添加到RailsAssets管道。只需添加//=requirefilename到application.js但是如何在一个文件夹下包含多个javscripts文件vendor/assets/javascripts/或者我必须明确列出它们? 最佳答案 //=require_tree.将需要application.js当前目录中的所有内容//=require_tree./js_library如果在app/assets/javascripts下,将需要js_library子目录中的所有内容如果您尝试

ruby - 嵌套类如何访问 Ruby 外部类中的方法?

defclassAdefaraise"hi"#can'tbereachedendclassBdefba()#doesn'tfindmethoda.endendend我想从b调用a并引发异常。我该怎么办? 最佳答案 Ruby没有嵌套类。继承行为的唯一方法是通过继承。如果你想让你的代码工作,你需要使用支持嵌套类的语言。虽然这是一个令人难以置信的简洁而强大的功能,但不幸的是我只知道两种具有嵌套类的语言:BETA,引入嵌套类的语言(及其继任者gbeta)Newspeak我不知道其他的。Java有一个称为嵌套类的构造,但它们有一些不幸的设计限

ruby-on-rails - 从 JavaScript 获取资源路径

我需要在RailsAssets管道中的HTML5Canvas上显示图像,但我需要知道来自JavaScript的Assets路径。我正在使用js-routes对于应用程序的其他部分,但它似乎没有提供一种方法来获取Assets管道中某些东西的路径。从JavaScript获取RailsAssets(例如图像)路径的正确方法是什么? 最佳答案 在Rails中AssetPipelineguide,他们通过使用ERB预处理样式表给出了样式表中编码Assets的示例。您可以对JavaScript使用相同的技术,假设您将.erb添加到文件名的末尾:

ruby - Ruby 中 &(& 符号)的用途用于过程和调用方法

我注意到很多处理RubyProcs的示例中都有以下&符号。#RubyExampleshout=Proc.new{puts'Yolo!'}defshout_n_times(n,&callback)n.timesdocallback.callendendshout_n_times(3,&shout)#prints'Yolo!'3times我的问题是&符号背后的功能目的是什么?看起来,如果我在不使用&的情况下编写完全相同的代码,它会按预期工作:#Samecodeaspreviouswithout&shout=Proc.new{puts'Yolo!'}defshout_n_times(n,ca

ruby-on-rails - Rails 自定义验证 - 只有一条记录可以为真

我正在尝试编写一个验证,其中只有一个记录可以为真。我有一个带有“事件”bool列的“游戏”模型,任何时候只能有一个游戏处于事件状态,所以如果有人在已经有一个事件的游戏时试图创建一个新的“游戏”记录,那么他们应该会得到一个错误.以下是我目前拥有但无法使用的内容!validate:active_gamedefactive_gameifactive==true&&Game.find_by(active:true)==trueerrors[:name]="agameisalreadyactive!"endend 最佳答案 我认为您可以在ac

ruby - 如何前置类方法

这个问题直接关系到thisone.但我试图将其分解为基本问题,我不想在另一个问题框中输入更多文本。所以这里是:我知道我可以通过扩展模块ClassMethods并通过Module#includeHook包含它来包含类方法。但是我可以用prepend做同样的事情吗?这是我的例子:Foo类:classFoodefself.bar'BaseBar!'endend类扩展:moduleExtensionsmoduleClassMethodsdefbar'ExtendedBar!'endenddefself.prepended(base)base.extend(ClassMethods)endend